<!--
- 这个文件用于企业微信登录
- 企业员工和外部员工都用这一个
-->
<template>
	<div class="login-wrap">

		<!--<div class="c-blue f14px">企业微信登录中....</div>-->
		<!--<div>员工是否登录isLoginUser：{{ isLoginUser }}</div>
		<div>外部客户是否登录isLoginExternalUser：{{ isLoginExternalUser }}</div>
		<div>couponId:{{couponId}}</div>
		<div>referrer:{{referrer}}</div>
		<div class="c-999">token:{{token}}</div>
		<div class="c-red">登录的用户信息{{userInfo}}</div>
		<div>
			<el-button type="danger" @click="manualLogin">首次请求时，异步可能会超时，点击重试</el-button>
		</div>-->
	</div>
</template>

<script>
import { mapMutations, mapState } from 'vuex'
import { apiWxWorkerLogin } from "@/axios/api";
import { getQueryString, isEmpty, isNotEmpty } from "@/utils/common";
import mixins from "@/mixins/mixins";
import mixinsWx from "@/mixins/mixinsWx";
export default {
	name: "login",
	components: {},
	mixins:[mixins,mixinsWx],
	data() {
		return {
			userData: {},
			couponId : "",//优惠券码，从url得到的
			referrer : "",// 推荐人，从url得到的，store中有了，所以加了个2
		}
	},
	computed:{
	},
	created(){
		//处理卡券id和推荐人
		this.couponId = localStorage.getItem("couponId")
		this.referrer = localStorage.getItem("userId")
		//请求登录
		this.loginRequest()
	},
	mounted(){
	},
	methods:{

		...mapMutations([
			'userWork/SET_USERINFO', // -> this['some/nested/module/foo']()
			'userWork/SET_TOKEN', // -> this['some/nested/module/foo']()
		]),


		//登录请求
		loginRequest(){


			//获取code参数，由于企业跳转回来的url把参数塞在path后面，使用这个方法
			let _code = this.$route.query.code//先使用路由方式获取参数
			if(isEmpty(_code)){
				_code = getQueryString('code')
			}

			//成功拿到code再执行登录
			if( isNotEmpty(_code) ) {
				/*Swal.fire({
					// position:'top',
					html: '企业微信登录请求中,请稍后...',
					// type: "success",
					showConfirmButton: false,
					backdrop:true,//遮罩
					allowOutsideClick: false,//允许外部点击关闭
					onBeforeOpen: () => { Swal.showLoading() },
					onAfterClose: () => {}
				});*/
				//请求服务器
				apiWxWorkerLogin({
					code:_code
				}).then((res)=>{
					console.log('服务器返回：',res.data)
					if(res.resultFlag == true){
						this.userData = res.data //用于显示
						this.$store.commit('userWork/SET_TOKEN',res.token)
						this.$store.commit('userWork/SET_USERINFO',res.data)

						if(res.data.UserId){
							// this.notify('登录接口返回数据有UserId，准备返回worker','success')
						}else if(res.data.external_userid){
							// console.log('返回领券页面')
							// this.notify('准备返回领券页面，卡券id：'+ this.couponId,'success')
						}
						//手动确定并跳转
						/*Swal.fire({
							position:'center',
							html: '登录成功，点击返回',
							type: "success",
							showConfirmButton: true,
							backdrop:false,//遮罩
							allowOutsideClick: false,//允许外部点击关闭
							// onBeforeOpen: () => { Swal.showLoading() },
							onAfterClose: () => {
								//判断是员工还是客户，进行不同的页面跳转
								if(res.data.UserId){
									this.$router.push('/worker') //这里的首页指员工工作台页面
								}else if(res.data.external_userid){
									// this.$router.push({ path:'/couponGet', query:{ couponId:_couponId, userId :_userId } })
									this.$router.push('/couponGet')
								}else{
									//这里要干点什么？
								}
							}
						});*/

						// 定时返回首页
						setTimeout(() => {
							if(res.data.UserId){
								this.$router.push('/worker') //这里的首页指员工工作台页面
							}else if(res.data.external_userid){
								// this.$router.push({ path:'/couponGet', query:{ couponId:_couponId, userId :_userId } })
								this.$router.push('/couponGet')
							}else{
								//这里要干点什么？
							}
						},200)

					}else{
						this.$message.error("登录失败了...")
					}
				})
			}else{
				console.log('code为空，不进行登录处理')
			}

		},


		//手动请求登录
		manualLogin() {
			this.loginRequest()
		},


	}
}
</script>

<style lang="less" scoped>

.login-wrap{
	word-break:break-all;
	* {word-break:break-all;}
}

</style>
